Microcomputers are known which comprise, preferably on a single silicon chip, a processor and memory, the processor being able to operate in accordance with programmable instructions from the memory. A particular example of such a microcomputer is that described in U.S. Pat. No. 4,704,678. This microcomputer has four serial message links, each comprising a pair of unidirectional communication channels, each with a dedicated pin, permitting messages to be passed in opposite directions between the microcomputer and the device to which it is connected. This device could be another similar microcomputer, with the output pin and the input pin of the serial link of one microcomputer being connected respectively by unidirectional communication channels to the input pin and the output pin of the serial link of the other microcomputer. As the unidirectional communication channels are implemented by hard wiring or some other physical means they are called herein "hard channels".
Such microcomputers are capable of executing several concurrent processes, each process being a predetermined instruction set of a program which is to run on the microcomputer. The microcomputer carries out a number of processes together, sharing its time between them. Processes which are carried out together are called concurrent processes. At any time, only one of the processes is actually being executed by the microcomputer and this process is called the current process. Each concurrent process to be executed by the microcomputer uses a region of memory called a workspace for holding the local variables and temporary values manipulated by the process. The microcomputer permits communication not only between concurrent processes on the same microcomputer but, via the hard channels, also between processes on different microcomputers connected in a network. Whether between concurrent processes or between processes on different microcomputers, the microcomputer operates to provide synchronous process-to-process communication. This is described in detail in U.S. Pat. No. 4,704,678, the contents of which are herein incorporated by reference. A brief discussion is provided here to aid in understanding the present invention. As already indicated, the microcomputer may operate a number of concurrent processes. It therefore provides a system of scheduling to determine which process shall be performed at any particular time. The workspace of the current process and the workspaces of other processes waiting to be executed form a list in which one location of each workspace holds the workspace pointer of the next process on the list. The processor normally executes the processes on the list in sequence, advancing to a subsequent process when the current process is descheduled. The current process ceases to carry out further instructions and the processor moves onto the next process which has been identified by the address of the next process. A process often becomes descheduled because it has reached an instruction causing it to output data to a certain channel, identified by a channel number. Where the process intended to receive this data is on a different microcomputer, this would be a hard channel which interconnects microcomputers as described above. In order to allow communication between different processes carried out by the same microcomputer, a plurality of so-called soft channels are provided in the memory. Each soft channel consists of two word locations in memory, one for use in identifying the process wishing to use the channel and the second for holding the data to be communicated through the channel. The outputting process will not become rescheduled until the "inputting process", the process for which the data was intended, has received that data and returned an acknowledgement message to the outputting process. At that stage the process will become rescheduled and will be placed at the end of the list of processes awaiting execution. The inputting and outputting processes are called communicating processes.
It is clear from the above that the number of processes on a microcomputer which can communicate simultaneously with processes on other microcomputers is limited by the number of hard channels available. Also, where several processes require the same hard channel for communication, it is necessary to provide on each microcomputer a process whose function is to organise the use of each message link. It will be clear from the above that the links are responsible not only for receiving data and allocating it to the inputting process but also for the generation and return of acknowledgements to the outputting process. It is also necessary, when allocating processes to microcomputers in a network, processes which communicate must be located either on the same microcomputer or on microcomputers which are directly connected by a message link.
These are all restrictions which are presently accepted by current users and designers of microcomputer networks.